<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ES6用法</title>
</head>

<body>
    <script>
        //变量
        //原用法 不严谨
        for (var i = 0; i < 5; i++) {
            console.log("i" + i);
        }
        console.log("i循环外：" + i)
            // ES6用法
        for (let j = 0; j < 5; j++) {
            console.log("j:" + j);
        }
        // console.log("j循环外：" + j) //j未定义

        const num = 1;

        // console.log(num++);  //常量不允许修改
    </script>
    <script>
        //解构表达式
        // 控制台中
        // let arr = [2, 5, -10, 15];
        // let x = arr[0],
        //     y = arr[1];
        // 解构简化
        // let [x, y] = arr;
        // x
        // 2
        // y
        // 5
        // let [,,x, y] = arr;

        //  取除了第一个的所有元素
        //let [,...rest] = arr;
        //rest
    </script>
    <script>
        function sum(a, b) {
            return a + b;
        }
        //箭头函数 lambda
        const add = (a, b) => (a + b);
        // js临时对象
        const p = {
            name: "jack",
            age: 21, //逗号分隔
            // sayHello: function() {
            //     console.log("hello")
            // }

            sayHello() {
                console.log("hello es6")
            }
        }

        p.sayHello();

        const hello = function(person) {
            console.log(person.name, person.age)
        }

        hello(p)

        const hello2 = function({
            name,
            age
        }) {
            console.log(name, age)
        }

        hello2(p);

        //lambda表达式
        const hello3 = ({
            name,
            age
        }) => console.log(name, age)


        hello3(p);

        //map reduce
    </script>
</body>

</html>